/*
 * @Author: HeAo
 * @Date: 2022-08-11 15:07:44
 * @LastEditTime: 2022-08-15 09:26:07
 * @LastEditors: HeAo
 * @Description: 
 * @FilePath: \JavaScripe\day-05\05-立即执行.js
 * 别乱动！
 */
// 1、普通函数
// function foo() {
//   console.log(123);
// }
// foo();
// 如果后面跟的是立即执行函数 前面的结束语句必须要加分号
// 2、立即执行写法1
(function (a) {
  console.log('我是立即执行写法1-' + a);
})(123)

// 2.2 立即执行写法2
(function (a) {
  console.log('我是立即执行写法2-' + a);
}(123))

// 写法总结
// (function(){})()
// (function(){}())


// // 3、返回一个布尔值，然后进行取反
// var res = ! function (a) {
//   return '123'
// }()
// console.log(res);

// // 4、对于数字返回的是原来的结果，非数字返回NaN
// var res = + function (a) {
//   return 123
// }()
// console.log(res);

// // 5、对于数字返回的是正负符号相反，非数字返回NaN
// var res = - function (a) {
//   return 123
// }()
// console.log(res);

// // 6、对于数字返回的是正负符号相反再减1，非数字返回-1
// var res = ~ function (a) {
//   return 123
// }()
// console.log(res);